package VisualOperadores;

import java.util.HashMap;

import Tela.AcaoPanelGrafo;
import Tela.ItemPGNoh;

public class AcaoPgProjecao extends AcaoPanelGrafo {

	private HashMap<String, String> campos;
	private String operator;

	public AcaoPgProjecao() {
		campos = new HashMap<String, String>();
	}

	public String executar(int x, int y) {
		ItemPGNoh noh = new ItemPGNoh(x, y, "Projecao");

		getPanelGrafo().addItem(noh);
		return null;
	}

	public void encerrar(int x, int y) {
		// nada a fazer aqui
	}

	public void mover(int x, int y) {
		// nada a fazer aqui
	}

	public void mudouAcao() {
	}

	public void setOperator(String Operador) {
		this.operator = Operador;
	}

	public void addCampo(String strAlias, String strTableFild) {
		this.campos.put(strAlias, strTableFild);
	}

	private String getCampos() {
		StringBuilder buffer = new StringBuilder();
		for (String alias : this.campos.keySet()) {
			// rodrigo se tiver mais de uma coluna fodeee
			buffer.append(" " + this.campos.get(alias) + " AS " + alias + ", ");
		}
		return buffer.toString().substring(0, buffer.length() - 2);
	}

	public String doSQL() {
		StringBuilder buffer = new StringBuilder();

		buffer.append("SELECT ");
		buffer.append(this.getCampos());
		buffer.append(" FROM (" + this.operator + ") as projecao ");
		return buffer.toString();
	}
}
